Though variations on the concept do exist, the term “Internet-of-Things” (IoT) generally refers to the concept of providing a variety of different kinds of devices (e.g., electrical appliances, objects, machines, etc. that are not general purpose computing devices) with network communication capabilities, so that these devices can send and receive data that generally enables the devices to be controlled and monitored remotely through the Internet. In some cases, individual ordinary home appliances (e.g., refrigerators, dishwashers, air conditioners, water heaters, lawn sprinklers, etc.) have an embedded processor (for executing instructions to control the function of the appliances) and a network adapter, so the home owner or user can enter various settings or receive status updates through the Internet regarding the functions of the appliances when not at home. For example, while away at work or on a trip, the user can check the current temperature reading of the thermostat in the user's home and then change the thermostat's settings through an appropriate interface on the user's smart phone. On a much larger scale, a physical facilities manager of a business enterprise can adjust multiple thermostats and turn on/off the lights of entire buildings from a central remote location.
An IoT device is specifically designed to incorporate the necessary network communication capabilities in the hardware and firmware of the IoT device. When designing an entirely new IoT device, for example, the IoT functionality is taken into consideration from the beginning of the design cycle and tightly integrated into the resulting physical design or architecture of the IoT device. On the other hand, manufacturers of such devices often prefer to keep a known product that has a proven track record for reliability and performance, rather than risk potential unforeseeable problems and setbacks that can be encountered when creating an entirely new design for a product. However, when it is desired to take an existing device (that was not originally designed to be an IoT device) and turn it into an IoT device, it is typically necessary to re-architect the original design of the hardware and firmware in order to add the network communication capability and remote control response functionality that enable the IoT device to handle transmitting and receiving data through the Internet in order to operate as a fully functional IoT device. Making such changes is not always a simple straightforward process, because new components have to be added to existing integrated circuits or circuit boards, new firmware has to be provided for the embedded processor, and the altered design has to be rigorously tested to ensure that all of the new features are compatible with the existing features. In fact, it can sometimes be quite time consuming, costly and more difficult to change an existing design compared to creating an entirely new design. Yet, most device manufacturers already have a legacy non-IoT product that they would like to leverage into an IoT product.